Hierarchical Playlist Generator

ABSTRACT

A playlist generator partitions the playlist generation process into a multi-stage, hierarchical process. At an example highest hierarchical level, the user&#39;s “general” preferences are applied. These general preferences reflect the user&#39;s “tastes”, and are relatively constant. At a lower level of the hierarchy, the user&#39;s “specific” preferences are applied. These specific preferences reflect the dynamic time-dependent or event dependent aspects of a user&#39;s entertainment preferences. The high-level preferences generate a subset of material from the global collection of material, and the lower-level preferences are applied to this subset of material as the user&#39;s immediate preferences change. By segregating the playlist generation process hierarchically, efficiency is gained by applying immediate preference changes to a smaller subset of material, and coherency is improved by limiting the subsequent selection processes to a given subset of the material.

This invention relates to the field of entertainment systems, and inparticular to a playlist generator that distinguishes between generaland specific preferences.

Playlists define a subset of entertainment selections, such as songs,videos, multimedia segments, and so on, for subsequent rendering via acorresponding rendering device or system.

A playlist generator facilitates the creation of a playlist. For ease ofreference, the invention is presented in the context of a playlistgenerator that creates a playlist of songs. One of ordinary skill in theart will recognize that the principles presented herein are independentof the type of material being playlisted. Conventionally, a playlistgenerator receives a set of user preferences, and applies this set ofpreferences to a collection of material to identify selections in thecollection that satisfy the set of preferences. The preferences maydefine songs that are to be included or excluded from the playlist,particular genres or styles, and so on, and may define a song to be usedas a seed to find similar songs. To create a different playlist, a usermodifies the preferences and submits this modified set of preferences tothe playlist generator.

Generally, a selection process based on user preferences is not an“absolute” filtering process; often the user's preferences do not form anecessarily coherent or consistent set of criteria. For example, a usermay indicate a preference for guitar music, ballads, and femalevocalists. This does not necessarily imply that the user would not beinterested in a guitar ballad performed by a male vocalist, or would notbe interested in a ballad by a female vocalist without guitar backup.Most preference-based selection processes, therefore, use some form ofweighted averaging to score each song relative to the given set ofpreferences, and songs that achieve a score above a given thresholdvalue are identified as the songs that correspond to a user'spreference. In the above example, a guitar ballad performed by a femalevocalist would likely score highly, but other preferred characteristicsmay cause the guitar ballad performed by a male vocalist to scorehigher, and thus be more preferable to the user.

Alternative schemes, including rule-based systems, neural networks, andthe like, are similarly based on providing a measure of correspondencebetween the characteristics of each song and the given user preferences,and identifying those having the best measure of correspondence.

Hundreds of thousands of songs are currently available for legaldownloading via the Internet, and the number is expected to continue tosubstantially increase. When a user initially submits a set ofpreferences to a song-searching playlist generator, the user typicallyreceives a very large playlist, and must subsequently refine his/herpreferences until the playlist size becomes manageable and/or usable.This iterative process is not always straightforward and/or productive,because the effects of a change of preference cannot easily bepredicted, particularly in the context of a multi-parameter playlistgenerator. Often, the iterative changing of a variety of preferenceparameters results in a playlist that lacks any sense of unity orcoherency. For example, a user may have previously identified apreference that effectively caused a particular group of songs to beexcluded, but a new preference may affect the scoring scheme so as toreintroduce songs from this group of previously excluded songs back intothe proposed playlist.

When the user next desires a different playlist, for example, due to achange in the user's mood or environment, the user either starts fromscratch and progressively adds preference constraints until a desiredplaylist size is achieved, or, the user modifies the prior set ofpreferences in an attempt to maintain a reasonably sized playlist withsome variety compared to the previous playlist. In either event, theseplaylist generation processes can be very time consuming, as eachiterative playlist generation is achieved by applying the revised set ofpreferences to the hundreds of thousands of songs. Also, because eachnew set of preferences is applied to the entirety of the collection ofsongs, a modification that a user intends to further limit the selectionprocess may, in fact, introduce additional selections into the playlist.

Automatic playlist generators based on vague preferences are intended toalleviate such difficulties. However, when the collection of materialincreases in size, the complexity of the task increases substantially,and the time to search and process the collection becomes excessive. Toaddress the complexity issue, a class of playlist generators, commonlytermed “recommenders”, have been developed that provide playlists basedon user's “tastes”, rather than particular preferences, wherein a user'staste is defined as long-term characteristics, such as a general likefor “rock and roll”, “jazz”, and so on. However, playlists based onthese general characteristics are often not coherent, and may not beconsistent with the user's current mood or environment.

It is an object of this invention to provide a playlist generator thatis scalable for efficiently generating playlists from ever-increasingcollections of available material. It is a further object of thisinvention to provide a playlist generator that easily accommodateschanges to a person's immediate preferences.

These objects and others are achieved by a playlist generator thepartitions the playlist generation process into a multi-stage,hierarchical process. At an example highest hierarchical level, theuser's “general” preferences are applied. These general preferencesreflect the user's long-term tastes, and are relatively constant. At alower level of the hierarchy, the user's “specific” preferences areapplied. These specific preferences reflect the dynamic time-dependentor event-dependent aspects of a user's entertainment preferences. Thehigh level preferences generate a subset of material from the globalcollection of material, and the lower level preferences are applied tothis subset of material as the user's immediate preferences change. Bysegregating the playlist generation process hierarchically, efficiencyis gained by applying immediate preference changes to a smaller subsetof material, and coherency is improved by limiting the subsequentselection processes to a given subset of the material.

The drawings are included for illustrative purposes and are not intendedto limit the scope of the invention. In the drawings:

FIG. 1 illustrates an example block diagram of a hierarchical playlistgenerator in accordance with this invention.

FIG. 2 illustrates an example block diagram of another hierarchicalplaylist generator in accordance with this invention.

Throughout the drawings, the same reference numerals indicate similar orcorresponding features or functions.

The playlist generator 100 of FIG. 1 includes at least two selectors,130, 150, that are configured to select material from one or moresources 110 to form a playlist 160 via a sequential filtering process.Optionally, the playlist generator 100 may also include a renderingdevice 190 for rendering the material identified in the playlist 160, orthe playlist 160 may be provided to a separate rendering system.Although only two selectors 130, 150 are illustrated in FIG. 1, one ofordinary skill in the art will recognize that multiple selectors may beplaced in a sequential path between sources 110 of content material andthe generated playlist 160, in view of this disclosure.

A first selector 130, hereinafter termed a “recommender”, is configuredto access the one or more sources 110 of content material, or indexes tothe one or more sources 110, to select a subset of the available contentmaterial, based on a first set of preferences 170 of a user. In oneembodiment of this invention, the first set of preferences 170correspond to the general “tastes” of the user. These tastes aretypically the time-invariant preferences of the user. For example, aparticular user may generally like rock-and-roll, country, and classicalmusic, and generally dislike jazz and folk music. That is, although atparticular times, or during particular events, this user may prefercountry over classical music, this user's general tastes includes bothcountry and classical music; but rarely, if ever, will a time or eventarise when this user's preference for music ever include jazz or folkmusic. In like manner, a user may generally like one particular artist,and absolutely dislike another artist, regardless of the genre of thesong that these artists record. Similarly, a user may have a generalpreference or aversion to songs that include drum-solos.

To create the preferences, the user is provided a means for identifyinghis/her general likes and dislikes (not illustrated), typically via aninteractive questionnaire. Although the above examples are presented interms of absolute likes and dislikes, the questionnaire can bestructured in the form of a weighting system, such as “on a scale of 0to 10, please identify your preferences for each of the following”.Alternatively, or additionally, the tastes of a user may be deduced byobserving the selections of content material by the user over anextended period of time, under a variety of circumstances.

The recommender 130 is configured to select content material from theone or more sources 110, or indexes to sources 110, that satisfy thegeneral tastes of the user, to form a subset 140 of identifiers of thecontent material in the sources 110 that satisfy the user's generaltastes 170. Because the user's general tastes include the user'spreferences regardless of a particular time or circumstance, the subset140 can be expected to include a fairly substantial portion of theavailable material from the sources 110. For example, in a typicalInternet-based environment wherein hundreds of thousands of songs areavailable for inclusion in the playlist 160, the subset 140 may includethousands or tens of thousands of songs that satisfy a particular user'sgeneral tastes 170.

Of particular note, due to the sequential nature of the selectors 130,150, material that does not satisfy the user's general tastes 170 arenot included in the subset 140, and thus are not available for selectionby the selector 150, regardless of subsequent user preferences 180,discussed below. This high-level or coarse filtering of the availablematerial from the sources 110, provides for efficient processing by thesubsequent selector 150, and also eliminates the possibility of asubsequent selection including material that does not conform to theuser's general tastes.

The subsequent selector 150, or series of subsequent selectors, selectsa further subset of identifiers of material from the subset 140, basedon a second set of user preferences 180. These user preferences 180 aregenerally time-dependent, or event-dependent, or merely based on aparticular mood of the user at the time the playlist 160 is generated.For example, a user who generally likes rock-and-roll may prefer not tohear rock-and-roll in the early morning hours. In like manner, a userwho likes rock-and-roll and country music may further refine theselection to include only romantic songs for a playlist intended for useduring a romantic event. Similarly, particular music characteristics maybe preferred for playlists intended for the dinner hour, and othercharacteristics for playlists intended for driving in rush-hour traffic.

As noted above, because the second selector 150 applies the set ofpreferences 180 to the subset 140 that conforms to the user's generaltastes, the risk of including unwanted material in the playlist 160 isconsiderably reduced compared to a conventional single-stage playlistgenerator. For example, in a conventional system a user may specify thathe/she does not prefer jazz, but because the filtering is based on acomposite of preferences, this no-jazz preference may be overcome by anexpressed preference for items such as “instrumentals”, “strong beat”,“horns”, and so on, for a particular occasion or particular mood of theuser. In the embodiment of FIG. 1, the no-jazz preference will typicallybe applied at the higher-level selector 130, and the event-specific ormood-specific preference for the particular set of music characteristicswill be included in the specific time-dependent or event-dependentpreferences 180. As such, because the subset 140 is formed based on thegeneral “no-jazz” preference, the subset 140 will not contain jazzselections. Thereafter, regardless of the inclusion of particular musiccharacteristics in the specific preferences 180, the playlist 160 cannotcontain jazz selections.

Although the invention has been presented using the paradigm of arecommender module 130 that provides a first subset of selections basedon a user's general preferences, one of ordinary skill in the art willrecognize that other schemes may be used. For example, FIG. 2illustrates a hierarchical playlist generator 200 that includes arecommender module 230 that is configured to search for songs that arecurrently popular, wherein popularity is defined in terms of the numberof times other users have accessed each song during a given time period.

In FIG. 2, a song-finder 215 is illustrated to represent one or moreweb-based applications that multiple users 225 use to access availablecontent material in the sources 110. The popularity logger module 230 inthe user's system 200 accesses the song-finder 215 to determine thepopularity of songs, based on the number of accesses to each item in thesources 110 via the source-finder 215 within a given time period.

In this embodiment, the user's preferences 270 include parameters forfiltering the sources 110 for popular songs, and may include, forexample, a time duration (previous day, previous week, previous month,etc.) for determining the tally of the number of requests for each song,a minimum number of accesses to qualify as a ‘popular’ song, and so on.The user is also provided the option of specifying the extent of thelist, in terms of the number of songs that are to be included in thepopular sublist 140. Typically, in a system wherein the sources 110contain hundreds of thousands of songs, a user will configure the logger230 to identify a few thousand popular songs, so that a sufficientvariety is obtained for subsequent filtering based on the user'sspecific preferences, discussed further below.

Optionally, depending upon the extent of the records maintained at thesong-finder 215, the logger module 230 may be configured to determinethe popularity of songs among a given subset of the users of thesong-finder 215. In such an embodiment, the user of the system 200identifies general tastes, such as “rock-and-roll”, “jazz”, “classical”,and so on, as discussed above, and the popularity logger module 230determines the songs that were most requested by other users who havetastes in common with the user's tastes. Similarly, the user preferences270 can include the user's general tastes 170, so that the logger module230 includes only songs that fit the user's general tastes 170 in thepopular sublist 140. That is, for example, if the user's taste includescountry-swing and rock-and-roll, the logger 230 can optionally beconfigured to report the N most-popular songs that are classified aseither country-swing or rock-and-roll, wherein most-popular isdetermined by the number of times the song has been requested by a userin a given time period. Similarly, the user can identify classificationsof songs that should be specifically excluded from consideration informing the popular list 140, such as not-Jazz, or not-Madonna, etc.

Note that by structuring the popular list 140 based on the user'sgeneral tastes, the popular list 140 is not dependent upon apredetermination of which material to classify as ‘popular’, as inconventional internet-radio and other playlist generators. As such, thepopular list 140 can be as narrowly-defined or broadly-defined as theuser prefers. For example, a user may request the most popular hard-rocksongs, the most popular piano concertos, the most popular Italian folksongs, the most popular children songs, and so on. In like manner, bystructuring the popular list 140 based on requests by other users, thepopular list 140 will likely automatically include seasonal-appropriatesongs, new songs from particular artists, and so on.

The selector 150 is configured to generate the playlist 160 from thepopular list 140, based on the user's specific preferences 180 for theparticular playlist, as detailed above. If the user's general tastes 170are not reflected in the songs selected by the popularity logger 230,these general preferences may be included in the preferences 180, orthese general preferences may be included in a mid-level of thehierarchical scheme illustrated in FIG. 2, to generate an intermediatelist, after the popular list 140, and the selector 150 will beconfigured to select the songs for the playlist 160 from thisintermediate list, based on the user's specific preferences 180.

In a typical embodiment of this invention, the subset 140 is stored innon-volatile storage, so that multiple playlists 160 can be generatedfrom this subset 140 as the user desires. For example, the system 100may be configured to apply the selector 130/230 to the available sources110 on a weekly basis, to keep the subset 140 relatively up to date.During the week, the user applies the selector 150 to the subset 140 togenerate playlists 160 as required. Because the subset 140 is acollection of identifiers that is substantially smaller than acollection of identifiers of all of the material at the sources 110, andbecause the subset 140 is typically generated at the user's system, therepeated operations of the selector 150 is substantially more efficientthan the conventional repeated operation of a single-stage selector thatsearches the entire collection at the sources 110.

As noted above, the selector 150 may include multiple sequentialselectors. For example, a recommender based on general tastes may followthe aforementioned popular-song recommender 230 to provide amulti-tiered filter process before the selector 150 is applied to selectsongs based on current preferences 180. In like manner, a selector maybe configured to create a sub-subset from the subset 140 based on thetime-of-day, and then another selector is configured to create theplaylist 160 from this sub-subset based on the user's current moodduring this time-of-day. In this manner, the user need not repeatedlyenter the time-of-day preferences for each change of current mood. Theseand other techniques for organizing preferences and selectors in ahierarchical manner will be evident to one of ordinary skill in the artin view of this disclosure.

The foregoing merely illustrates the principles of the invention. Itwill thus be appreciated that those skilled in the art will be able todevise various arrangements which, although not explicitly described orshown herein, embody the principles of the invention and are thus withinits spirit and scope. For example, a user may create a collection ofpreference files, such as “general”, “romantic”, “lively”, “dinner”,“blues”, and so on, and may selectively apply these preferences in asequential manner. By applying the preferences in a sequential mannerand thereby generating progressively smaller subsets, the user is ableto generate a progressively more selective playlist without the risk ofa particular preference introducing a divergent search result. In likemanner, although the invention is presented herein with the “general”preferences being applied first, at the highest level, and the“specific” preferences applied subsequently, the system can beconfigured to allow the user to select the particular order ofpreference selection. These and other system configuration andoptimization features will be evident to one of ordinary skill in theart in view of this disclosure, and are included within the scope of thefollowing claims.

1. A playlist generator comprising: a first selector that is configuredto search a source of material and to provide therefrom a first subsetof identifications of items within the source of material, based on afirst set of user preferences, and a second selector that is configuredto search the first subset of identifications based on a second set ofuser preferences, and to provide therefrom a second subset ofidentifications of items within the source of material that facilitatessubsequent rendering of the items identified in the second subset. 2.The playlist generator of claim 1, wherein the first set of userpreferences includes time-independent user preferences, and the secondset of user preferences includes user preferences at a particular time.3. The playlist generator of claim 1, wherein the first set of userpreferences includes event-independent user preferences, and the secondset of user preferences includes user preferences upon an occurrence ofan event.
 4. The playlist generator of claim 1, wherein the first set ofuser preferences includes general user preferences, and the second setof user preferences includes specific user preferences.
 5. The playlistgenerator of claim 1, wherein the source of material includes one ormore Internet web-sites.
 6. The playlist generator of claim 1, furtherincluding non-volatile memory that is configured to store the firstsubset of identifications, and the second selector is further configuredto search the first subset of identifications, based on a third set ofuser preferences, to provide therefrom a third subset of identificationsof items within the source of material, to form another playlist thatfacilitates subsequent rendering of the items identified in the thirdsubset.
 7. The playlist generator of claim 1, wherein the first set ofuser preferences includes one or more parameters for searching thesource of material based on a frequency of access of the items withinthe source of material, and the first selector is configured todetermine a measure of requests for each item within the source materialby a plurality of users, and to provide therefrom the first subset ofidentifications of items, based on the measure of requests for eachitem.
 8. The playlist generator of claim 7, wherein the first selectoris further configured to provide the first subset of identifiers basedon a set of general user preferences, and the second set of userpreferences includes a set of specific user preferences.
 9. The playlistgenerator of claim 7, wherein the first selector is further configuredto provide the first subset of identifiers based on a set of generaluser preferences, and the second set of user preferences includes a setof preferences based upon a particular event.
 10. The playlist generatorof claim 7, further including non-volatile memory that is configured tostore the first subset of identifications, and the second selector isfurther configured to search the first subset of identifications, basedon a third set of user preferences, to provide therefrom a third subsetof identifications of items within the source of material, to formanother playlist that facilitates subsequent rendering of the itemsidentified in the third subset.
 11. A system comprising: a playlistgenerator that is configured to provide a set of identifications ofselect items within a source of material, and a rendering device,operably coupled to the playlist generator, that is configured to renderthe select items; wherein the playlist generator includes: a firstselector that is configured to search the source of material and toprovide therefrom a first subset of identifications of items within thesource of material, based on a first set of parameters, and a secondselector that is configured to search the first subset ofidentifications based on a second set of parameters, and to providetherefrom the set of identifications of the select items.
 12. The systemof claim 11, wherein the first set of parameters includestime-independent user preferences, and the second set of parametersincludes user preferences at a particular time.
 13. The system of claim11, wherein the source of material includes one or more Internetweb-sites.
 14. The system of claim 11, further including non-volatilememory that is configured to store the first subset of identificationsto facilitate generation of multiple sets of identifications of selectitems based on the first subset of identifications.
 15. The system ofclaim 11, wherein the first set of parameters includes one or moreparameters for searching the source of material based on a frequency ofaccess of the items within the source material, and the first selectoris configured to determine a measure of requests for each item withinthe source of material by a plurality of users, and to provide therefromthe first subset of identifications of items, based on the measure ofrequests for each item.
 16. The system of claim 15, wherein the firstselector is further configured to provide the first subset ofidentifiers based on a set of general user preferences, and the secondset of parameters includes a set of specific user preferences.
 17. Amethod of generating a playlist, comprising: searching a source ofmaterial based on a first set of parameters to provide thereby a firstsubset of identifications of items within the source of material, andgenerating the playlist from the first subset of identifications ofitems, based on a second set of parameters.
 18. The method of claim 17,wherein the first set of parameters includes substantiallytime-invariant user preferences, and the second set of parametersincludes user preferences at a particular time.
 19. The method of claim17, wherein the first set of parameters includes one or more parametersfor searching the source of material based on accesses to the itemswithin the source of material, and searching the source of materialfurther includes determining a frequency of access of each of aplurality of items within the source of material, and selecting theidentifications of items for inclusion in the first subset ofidentifications based at least in part on the frequency of access ofeach of the plurality of items.
 20. The method of claim 19, whereinselecting the identifications of items for inclusion in the first subsetis also based on substantially time-invariant user preferences, and thesecond set of parameters includes user preferences at a particular time.21. The method of claim 17, further including storing the first subsetof identifications, and generating another playlist from the firstsubset of identifications of items, based on a further set ofparameters.